package com.wande.dataplatform.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wande.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 元数据实体
 *
 * @author wande
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dp_metadata")
public class Metadata extends TenantEntity {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 数据源ID
     */
    private Long datasourceId;

    /**
     * 数据库名
     */
    private String databaseName;

    /**
     * 表名
     */
    private String tableName;

    /**
     * 表注释
     */
    private String tableComment;

    /**
     * 表类型: TABLE, VIEW
     */
    private String tableType;

    /**
     * 字段信息JSON
     */
    private String fields;

    /**
     * 索引信息JSON
     */
    private String indexes;

    /**
     * 数据大小(字节)
     */
    private Long dataSize;

    /**
     * 行数
     */
    private Long rowCount;

    /**
     * 最后采集时间
     */
    private LocalDateTime lastCollectTime;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 状态: 0-禁用, 1-启用
     */
    private Integer status;
}
